import java.util.TreeSet;
import java.util.Set;
/**
 * 基础类
 * Teacher
 * 属性id name age，
 * 要求
 * 将对象保存在TreeSet集合中并且排序。
 * 排序规则为：先通过名字排序，名字相同的时候通过
 * 年龄进⾏排序，年龄相同时通过id排序。
 * 通过两种⽅式实现：Comparable接⼝和Comparator接⼝
 */
public class Test3 {
    public static void main(String[] args) {
        // 创建测试数据
        Teacher t1 = new Teacher(1, "张三", 30);
        Teacher t2 = new Teacher(2, "李四", 28);
        Teacher t3 = new Teacher(3, "张三", 32);
        Teacher t4 = new Teacher(4, "张三", 30);
        Teacher t5 = new Teacher(5, "王五", 35);

        // 方式1：使用实现了Comparable接口的Teacher类
        System.out.println("使用Comparable接口排序：");
        Set<Teacher> set1 = new TreeSet<>();
        set1.add(t1);
        set1.add(t2);
        set1.add(t3);
        set1.add(t4);
        set1.add(t5);
        for (Teacher teacher : set1) {
            System.out.println(teacher);
        }

        // 方式2：使用Comparator接口
        System.out.println("\n使用Comparator接口排序：");
        Set<Teacher> set2 = new TreeSet<>(new TeacherComparator());
        set2.add(t1);
        set2.add(t2);
        set2.add(t3);
        set2.add(t4);
        set2.add(t5);
        for (Teacher teacher : set2) {
            System.out.println(teacher);
        }
    }
}

